package com.tsunami.auth.service.auth;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tsunami.authority.dto.auth.ResourceQueryDTO;
import com.tsunami.authority.dto.auth.ResourceUpdateDTO;
import com.tsunami.authority.entity.auth.Resource;
import com.tsunami.base.R;
import com.tsunami.user.model.SysUser;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 资源表 服务类
 * </p>
 *
 * @author lx
 * @since 2021-09-23
 */
public interface IResourceService extends IService<Resource> {
    /**
     * 查询 拥有的资源
     * @param userId
     * @return
     */
    List<String> findVisibleResource(Long userId);

    /**
     * 查询 拥有的资源
     * @param resource
     * @return
     */
    List<Resource> findVisibleResource(ResourceQueryDTO resource);

    /**
     * 分页资源列表
     * @param data
     * @return
     */
    R selectPageList(Resource data);

    /**
     * 修改资源信息
     * @param data
     * @return
     */
    Resource updateResource(SysUser loginUser, ResourceUpdateDTO data);

    /**
     * 根据资源id 查询菜单id
     * @param resourceIdList
     * @return
     */
    List<Long> findMenuIdByResourceId(List<Long> resourceIdList);

    /**
     * 系统权限角色信息获取
     * @return
     */
    Map<String,Object> initResourceRolesMap();
    /**
     * 菜单获取权限
     * @return
     */
    List<Resource> findResourceByMenu(Long menuId);
}
